package com.jeehentor.common.api;

import com.alibaba.fastjson2.JSONObject;
import com.jeehentor.common.api.vo.LoginUser;
import com.jeehentor.common.api.vo.SystemLog;

import java.util.List;

/**
 * @Description : 系统公共api
 * @Author : wzd
 * @Date : 2024/4/8 14:23
 * @Version : 1.0
 **/
public interface SystemCommonAPI {

     /**
      * 根据用户名查询用户信息
      * @param username
      * @return
      */
     LoginUser findUserByName(String username);

    /**
     * 根据用户id查询权限
     * @param userId
     * @return
     */
    List<String> getPermissionList(String userId);

    /**
     * 根据用户id查询角色
     * @param id
     * @return
     */
    List<String> getRoleList(String id);

    /**
     * 根据用户id查询用户
     * @param id
     * @return
     */
    LoginUser getUserById(String id);


    /**
     * 保存日志
     * @param systemLog
     */
    void saveLog(SystemLog systemLog);

    /**
     * 保存菜单
     * @param menuDTO
     */
    JSONObject addMenu(JSONObject menuDTO);

    /**
     * 判断菜单是否存在
     * @param parentId
     * @param name
     * @return
     */
    JSONObject existMenu(String parentId, String name);

    /**
     * 更新菜单
     * @param menuDTO
     */
    void updateMenu(JSONObject menuDTO);

    /**
     * 新增角色菜单
     * @param roles
     * @param menuId
     */
    void addRoleMenu(List<String> roles, String menuId);
}
